﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using FacProFacu;

namespace Guada
{
    public partial class FrmMenu : Form
    {
        private string usuario;
        private string perfil;

        public FrmMenu(string sIdUsuario, string sPerfil)
        {
            this.inicializarComponente();
            this.usuario = sIdUsuario;
            this.perfil = sPerfil;
        }

        private void FrmMenu_Load(object sender, EventArgs e)
        {
            try
            {
                this.inhabilitarMenues();
                this.perfilLogeado(usuario, perfil);
            }
            catch 
            {
                MessageBox.Show("Se ha producido un Error.", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.Close();
            }
        }

        private void inhabilitarMenues()
        {
            foreach (ToolStripMenuItem menuItem in MnuPrincipal.Items)
            {
                if (!menuItem.Name.Equals("MnuSalir"))
                {
                    menuItem.Visible = false;
                }
            }
        }

        private void perfilLogeado(string sUsuario, string sPerfil)
        {
            Sistema perfil = new Sistema();
            DataTable Dt = perfil.FuncionesHabilitadas(sPerfil).Tables["FUNCIONES"];
            if (Dt.Rows.Count > 0)
            {
                foreach (DataRow dr in Dt.Rows)
                {
                    HabilitarMenu(Convert.ToInt16(dr[1].ToString()));
                }
            }
            else
            {
                MessageBox.Show("El usuario logeado no tiene funciones habilidatas. Comuniquese con el Administrador del Sistema.", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }

        private void HabilitarMenu(int sFuncion)
        {
            switch (sFuncion)
            {
                case 1:
                    MnuUsuarios.Visible = true;
                    MnuAltaUsu.Visible = true;
                    break;
                case 2:
                    MnuUsuarios.Visible = true;
                    MnuModUsu.Visible = true;
                    break;
                case 3:
                    MnuUsuarios.Visible = true;
                    MnuBajaUsu.Visible = true;
                    break;
                case 4:
                    MnuProfesionales.Visible = true;
                    MnuAltaProfesional.Visible = true;
                    break;
                case 5:
                    MnuProfesionales.Visible = true;
                    MnuModProfesional.Visible = true;
                    break;
                case 6:
                    MnuProfesionales.Visible = true;
                    MnuBajaProfesional.Visible = true;
                    break;
                case 7:
                    MnuABMs.Visible = true;
                    MnuEspecialidad.Visible = true;
                    break;
                case 8:
                    MnuABMs.Visible = true;
                    MnuEstudios.Visible = true;
                    break;
                case 9:
                    MnuABMs.Visible = true;
                    MnuDiagnostico.Visible = true;
                    break;
                case 10:
                    MnuABMs.Visible = true;
                    MnuOSocialPrepaga.Visible = true;
                    break;
                case 11:
                    MnuABMs.Visible = true;
                    MnuTurno.Visible = true;
                    break;
                case 12:
                    MnuPaciente.Visible = true;
                    altaDePacienteToolStripMenuItem.Visible = true;
                    break;
                case 13:
                    MnuPaciente.Visible = true;
                    MnuModPac.Visible = true;
                    break;
                case 14:
                    MnuPaciente.Visible = true;
                    consultaDePacientesToolStripMenuItem.Visible = true;
                    break;
                case 15:
                    MnuHistoriaClinica.Visible = true;
                    break;
                case 16:
                    MnuTurnos.Visible = true;
                    reservasToolStripMenuItem.Visible = true;
                    break;
                case 17:
                    MnuTurnos.Visible = true;
                    cancelacionesToolStripMenuItem.Visible = true;
                    break;
                case 18:
                    MnuTurnos.Visible = true;
                    asistenciasToolStripMenuItem.Visible = true;
                    break;
                case 19:
                    MnuAtencionPaciente.Visible = true;
                    break;
                case 20:
                    MnuReportes.Visible = true;
                    estudiosXEspecialidadToolStripMenuItem.Visible = true;
                    break;
                case 21:
                    MnuReportes.Visible = true;
                    estudiosXObraSocialToolStripMenuItem.Visible = true;
                    break;
                case 22:
                    MnuReportes.Visible = true;
                    atencionPorMedicoToolStripMenuItem.Visible = true;
                    break;
            }
        }

        private void altaDePacienteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FrmPaciente Paciente = new FrmPaciente();
            Paciente.ShowDialog();
        }

        private void MnuModPac_Click(object sender, EventArgs e)
        {
            FrmMBPaciente Paciente = new FrmMBPaciente();
            Paciente.ShowDialog();
        }

        private void MnuSolicitudHC_Click(object sender, EventArgs e)
        {
            FrmSolicitudHC Solicitud = new FrmSolicitudHC();
            Solicitud.ShowDialog();
        }

        private void reservasToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FrmTurnos Turnos = new FrmTurnos();
            Turnos.ShowDialog();
        }

        private void cancelacionesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FrmCancelT Turnos = new FrmCancelT();
            Turnos.ShowDialog();
        }

        private void asistenciasToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FrmAsistenciaT Turnos = new FrmAsistenciaT();
            Turnos.ShowDialog();
        }

        private void consultaDePacientesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FrmBuscarPaciente buscar = new FrmBuscarPaciente(false);
            buscar.ShowDialog();
        }

        private void MnuEstudios_Click(object sender, EventArgs e)
        {
            FacProFacu.Sistema sistema = new FacProFacu.Sistema();
            DataTable Dt = sistema.ProfesionalLogeado(usuario).Tables["PROFLOGEADO"];
            FrmAtencionProfesional profesional = new FrmAtencionProfesional(Dt.Rows[0]["IDPROF"].ToString(), Dt.Rows[0]["IDESPE"].ToString(),true);
            profesional.ShowDialog();
        }

        private void salirToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Confirma salir del sistema.", "CERRAR SISTEMA", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                this.Close();
            }
        }

        private void verPacientesPendientesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FacProFacu.Sistema sistema = new FacProFacu.Sistema();
            DataTable Dt = sistema.ProfesionalLogeado(usuario).Tables["PROFLOGEADO"];
            if (Dt.Rows.Count > 0)
            {
                FrmAtencionProfesional profesional = new FrmAtencionProfesional(Dt.Rows[0][0].ToString(), Dt.Rows[0][1].ToString(),true);
                profesional.ShowDialog();
            }
            else
            {
                FrmAtencionProfesional profesional = new FrmAtencionProfesional("0", "0",false);
                profesional.ShowDialog();
            }
        }

        private void estudiosXEspecialidadToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FrmReportePorEspecialidad rpt = new FrmReportePorEspecialidad();
            rpt.ShowDialog();
        }

        private void atencionPorMedicoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FrmReportesPorAtencion rpt = new FrmReportesPorAtencion();
            rpt.ShowDialog();
        }

        private void MnuAltaProf_Click(object sender, EventArgs e)
        {
            FrmAltaProfesional altaProfesional = new FrmAltaProfesional();
            altaProfesional.ShowDialog();
        }

        private void MnuModProf_Click(object sender, EventArgs e)
        {
            FrmModProfesional modProfesional = new FrmModProfesional();
            modProfesional.ShowDialog();
        }

        private void MnuBajaProf_Click(object sender, EventArgs e)
        {
            FrmBajaProfesional bajaProfesional = new FrmBajaProfesional();
            bajaProfesional.ShowDialog();
        }

        private void MnuEspecialidad_Click(object sender, EventArgs e)
        {
            FrmAbmEspecialidad AbmEspecialidad = new FrmAbmEspecialidad();
            AbmEspecialidad.ShowDialog();
        }

        private void MnuEstudios_Click_1(object sender, EventArgs e)
        {
            FrmAbmEstudios AbmEstudios = new FrmAbmEstudios();
            AbmEstudios.ShowDialog();
        }

        private void MnuDiagnostico_Click(object sender, EventArgs e)
        {
            FrmAbmDiagnosticos AbmDiagnostico = new FrmAbmDiagnosticos();
            AbmDiagnostico.ShowDialog();
        }

        private void MnuOSocialPrepaga_Click(object sender, EventArgs e)
        {
            FrmAbmOSyPrepagas AbmOSyPrepagas = new FrmAbmOSyPrepagas();
            AbmOSyPrepagas.ShowDialog();
        }

        private void MnuTurno_Click(object sender, EventArgs e)
        {
            FrmAbmTurnos AbmTurnos = new FrmAbmTurnos();
            AbmTurnos.ShowDialog();
        }

        private void MnuAltaUsu_Click(object sender, EventArgs e)
        {
            FrmAltaUsuario altaUsuario = new FrmAltaUsuario();
            altaUsuario.ShowDialog();
        }

        private void MnuModUsu_Click(object sender, EventArgs e)
        {
            FrmModUsuario modUsuario = new FrmModUsuario();
            modUsuario.ShowDialog();
        }

        private void MnuBajaUsu_Click(object sender, EventArgs e)
        {
            FrmBajaUsuario bajaUsuario = new FrmBajaUsuario();
            bajaUsuario.ShowDialog();
        }

        private void MnuAltaProfesional_Click(object sender, EventArgs e)
        {
            FrmAltaProfesional altaProfesional = new FrmAltaProfesional();
            altaProfesional.ShowDialog();
        }

        private void MnuModProfesional_Click(object sender, EventArgs e)
        {
            FrmModProfesional modProfesional = new FrmModProfesional();
            modProfesional.ShowDialog();
        }

        private void MnuBajaProfesional_Click(object sender, EventArgs e)
        {
            FrmBajaProfesional bajaProfesional = new FrmBajaProfesional();
            bajaProfesional.ShowDialog();
        }

    }
}
